package br.com.bestOffer.ejb.codigo.service;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import br.com.bestOffer.ejb.usuario.entity.Usuario;
import br.com.bestOffer.ejb.util.GeradorChaveUtil;

@Stateless
public class CodigoVerificadorServiceBean {

	@PersistenceContext
	private EntityManager entityManager;

	public String geraChaveUsuario(){

		String chave = null;
		
		Boolean veriricacao = true;

		while(veriricacao){

			chave = GeradorChaveUtil.gerarSenhaAleatoria();

			if(autorizaLiberacaoChaveUsuario(chave)){
				break;
			}
		}
		return chave;

	}
	
	
	public Boolean autorizaLiberacaoChaveUsuario(String chave){
		try {
			Query query = entityManager.createNamedQuery("Usuario.verificaChaveExistente");
			query.setParameter("chave", chave);

			 Usuario usuario = (Usuario) query.getSingleResult();

			if(usuario != null){
				return false;
			}else{
				return true;
			}
		} catch (Exception e) {
			return true;
		}
	}
}
